package com.jeequan.jeepay.service;

//package .service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jeequan.jeepay.core.entity.Balance;

import java.math.BigDecimal;
//import .entity.Balance;

 /**
 * 钱包;(balance)表服务接口
 * @author : wondream322@gmail.com
 * @date : 2023-8-19
 */
public interface BalanceService {

     /**
      * 通过ID查询单条数据
      *
      * @param id 主键
      * @return 实例对象
      */
     Balance queryById(Integer id);

     /**
      * 分页查询
      *
      * @param balance 筛选条件
      * @param current 当前页码
      * @param size    每页大小
      * @return
      */
     Page<Balance> paginQuery(Balance balance, long current, long size);

     /**
      * 新增数据
      *
      * @param balance 实例对象
      * @return 实例对象
      */
     Balance insert(Balance balance);

     /**
      * 更新数据
      *
      * @param balance 实例对象
      * @return 实例对象
      */
     Balance update(Balance balance);

     /**
      * 通过主键删除数据
      *
      * @param id 主键
      * @return 是否成功
      */
     boolean deleteById(Integer id);

     /**
      * 增加余额
      */
     boolean addBalance(Integer memberId, Integer balanceType, Integer balanceLevel, BigDecimal balance, Integer sourceType, Integer sourceId);

     /**
      * 减少余额
      */
     boolean deductBalance(Integer memberId, Integer balanceType, Integer balanceLevel, BigDecimal balance, Integer sourceType, Integer sourceId);

     /**
      * 检查钱包，如果不存在则创建
      */
     Balance createIfNotExists(Integer memberId, Integer balanceType, Integer balanceLevel);
 }